
-- local function test_call()
--     local function Call(env)
--         return setmetatable({}, {
--             __index = env,
--             __call = Call,
--         });
--     end

--     local env1 = Call({env1 = true});
--     local env2 = env1();
--     env2.env2 = true;
--     local env3 = env2()
--     env3.env3 = true;
--     print("env3", env3.env1, env3.env2, env3.env3);
--     print("env2", env2.env1, env2.env2, env2.env3);
--     print("env1", env1.env1, env1.env2, env1.env3);
-- end